#ifndef WIDGET_H
#define WIDGET_H
#include"mycar.h"
#include <QWidget>
#include<QGraphicsPixmapItem>//图形元素->场景->视图->窗口
#include<QGraphicsView>//视图
#include<QGraphicsScene>
#include <QTimer>
#include"bullet.h"
#include"enemy.h"

QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    void keyPressEvent(QKeyEvent* event);

    void keyReleaseEvent(QKeyEvent* event);
    void carmove();//车移动
    //玩家车子弹发射函数
    void mcarbulletshoot();
    //敌人创建函数
    void createenemy();
    void collision();

private:
    Ui::Widget *ui;
    QGraphicsView mygameview;//游戏视图
    QGraphicsScene mscene;//游戏场景
    QGraphicsPixmapItem mybg1;
    QGraphicsPixmapItem mybg2;
    mycar mcar;
    QGraphicsScene startscene;//游戏开始界面场景

    QTimer* carmovetimer;//飞机移动定时器
    QTimer* mcarshoottimer;//子弹发射定时器
    QTimer* bulletmovetimer;//子弹移动定时器
    QTimer*enemycreatedtimer;//敌人创建定时器
    QTimer* enemymovetimer;//敌人移动定时器

    QList<int>mkeylist;//移动按键组合
    QList<bullet*>bulletlist;//子弹列表
    QList<enemy*>enemylist;//敌人列表

    void die();

//添加精灵图参数：路径、每帧宽、每帧高、帧数、更新速度
    const QString spritepath = ":/img/FLYING.png";
    const int framewidth = 79;
    const int frameheight = 69;
    const int framenum = 4;
    const int frameupdatespeed= 20; // 毫秒
};
#endif // WIDGET_H
